package com.rfid.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.rfid.businness.AccesorioBusinness;
import com.rfid.businness.AlumnoBusinness;
import com.rfid.businness.TipoAccesorioBusinness;
import com.rfid.domain.Accesorio;
import com.rfid.domain.Alumno;
import com.rfid.domain.TipoAccesorio;

@Controller
public class AccesorioController {
	@Autowired
	private AccesorioBusinness accesorioBusinness;

	@Autowired
	private AlumnoBusinness alumnoBusinness;

	@Autowired
	private TipoAccesorioBusinness tipoAccesorioBusinness;

	// lo pinta en la pagina
	@RequestMapping(value = "/accesorio.tecsup", method = RequestMethod.GET)
	public String Registro(ModelMap modelMap) {
		List<TipoAccesorio> lstTipoAccesorio = tipoAccesorioBusinness.listarTodos();
		modelMap.addAttribute("lstTipoAccesorio", lstTipoAccesorio);
		return "accesorio";
	}

	@RequestMapping(value = "/veraccesorio.tecsup", method = RequestMethod.GET)
	public String ver() {
		return "veraccesorio";
	}

	@RequestMapping(value = "/accesorioadd.tecsup", method = RequestMethod.POST)
	public String insertar(ModelMap modelMap, Alumno alumno, Accesorio accesorio,
			TipoAccesorio tipoAccesorio,
			@RequestParam(value = "serie", required = true) String serie,
			@RequestParam(value = "modelo", required = true) String modelo,
			@RequestParam(value = "marca", required = true) String marca,
			@RequestParam(value = "tipo-accesorio", required = true) int idTipoAccesorio,
			@RequestParam(value = "codigo", required = true) String codigo) {

		alumno = alumnoBusinness.obtenerPorCodigo(codigo);

		if (alumno != null) {
			accesorioBusinness
					.insertar(serie, modelo, marca, idTipoAccesorio, alumno.getIdAlumno());
		} else {
			modelMap.addAttribute("msgError", "Alumno con código " + codigo + " no existe.");
			List<TipoAccesorio> lstTipoAccesorio = tipoAccesorioBusinness.listarTodos();
			modelMap.addAttribute("lstTipoAccesorio", lstTipoAccesorio);
		}

		return "accesorio";
	}

	@RequestMapping(value = "/buscar-accesorio.tecsup", method = RequestMethod.POST)
	public String buscarPorCodigo(ModelMap modelMap,Alumno alumno, TipoAccesorio tipoAccesorio,
			@RequestParam(value = "codigo-alumno", required = true) String codigoAlumno) {
		alumno = alumnoBusinness.obtenerPorCodigo(codigoAlumno);
		if(alumno != null){
			List<Accesorio> lstAccesorio = accesorioBusinness.listarPorIdAlumno(alumno.getIdAlumno());
			for(Accesorio accesorio:lstAccesorio){
				tipoAccesorio = tipoAccesorioBusinness.obtenerPorId(accesorio.getMyTipoAccesorio().getIdTipoAccesorio());
				accesorio.setMyAlumno(alumno);
				accesorio.setMyTipoAccesorio(tipoAccesorio);
			}
			modelMap.addAttribute("lstAccesorio", lstAccesorio);
		}else{
			modelMap.addAttribute("msgError", "Alumno con codigo " + codigoAlumno + " no existe.");
		}		
		return "veraccesorio";

	}
}
